package il.ac.biu.cs.grossmm.api.server;

/**
 * Provades a means to place a component into a container thus providing it with
 * <code>ComponentManager</code> and, if needed, by
 * <code>ServiceManager</code>. This is an experemental interface reserved
 * for future and is not used in current version of the framework.
 */
public interface Container {
	/**
	 * Puts a component into a container, thus providing it with
	 * <code>ComponentManager</code> and, if needed, by
	 * <code>ServiceManager</code>. If component is a SelfLoader, it's method
	 * <code>getLoader</code> is called If component is a SelfService, it is
	 * automatically started.
	 * 
	 * @param component
	 * @throws Exception
	 */
	void place(Object component) throws Exception;
}
